DynamoDB তে Query অপারেশন দ্রুত এবং কার্যকরীভাবে সম্পাদন করার জন্য Indexes ব্যবহার করা যেতে পারে। ইন্ডেক্সেস, ডেটার দ্রুত অনুসন্ধান এবং কুয়েরি অপটিমাইজেশন করতে সাহায্য করে। DynamoDB তে দুটি প্রধান ধরনের ইনডেক্স রয়েছে:
এই ইন্ডেক্সগুলি ব্যবহার করে আপনি কুয়েরির পারফরম্যান্স বৃদ্ধি করতে এবং ডেটা দ্রুত সেগমেন্ট করতে পারেন।
গুণাবলী:
উদাহরণ: ধরুন আপনি একটি Products
টেবিলের ডেটাবেসে কাজ করছেন এবং প্রাথমিক চাবি হিসেবে ProductID
ব্যবহার করছেন। তবে, আপনি যদি Category
অ্যাট্রিবিউটের উপর কুয়েরি করতে চান, তাহলে একটি GSI তৈরি করতে পারেন যেখানে Partition key হবে Category
এবং Sort key হবে Price
.
GSI নাম: CategoryIndex
Partition key: Category
Sort key: Price
GSI দিয়ে কুয়েরি করার উদাহরণ:
aws dynamodb query \
--table-name Products \
--index-name CategoryIndex \
--key-condition-expression "Category = :category" \
--expression-attribute-values '{":category":{"S":"Electronics"}}'
এই কুয়েরি দ্বারা আপনি Electronics
ক্যাটেগরির সমস্ত পণ্য পাওয়ার জন্য দ্রুত ফলাফল পাবেন।
গুণাবলী:
উদাহরণ: ধরুন আপনার Orders
টেবিলের OrderID
এবং CustomerID
রয়েছে, এবং আপনি OrderDate
অ্যাট্রিবিউটের উপর কুয়েরি করতে চান। এখানে, একটি LSI ব্যবহার করা হতে পারে।
LSI নাম: OrderDateIndex
Partition key: CustomerID
Sort key: OrderDate
LSI দিয়ে কুয়েরি করার উদাহরণ:
aws dynamodb query \
--table-name Orders \
--index-name OrderDateIndex \
--key-condition-expression "CustomerID = :customerId and OrderDate between :startDate and :endDate" \
--expression-attribute-values '{":customerId":{"S":"12345"}, ":startDate":{"S":"2023-01-01"}, ":endDate":{"S":"2023-12-31"}}'
এই কুয়েরি CustomerID
12345 এর সকল অর্ডার 2023-01-01
থেকে 2023-12-31
এর মধ্যে ফেরত দেবে।
Category
বা City
অ্যাট্রিবিউটের ওপর কুয়েরি করছেন, তবে GSI ব্যবহার করা উত্তম। যদি আপনার কুয়েরি মূল Partition key
এর সাথে সম্পর্কিত হয়, তবে LSI কার্যকরী হতে পারে।শুধুমাত্র সেই ফিল্ডগুলো নির্বাচন করুন যা প্রয়োজন। এতে সময় বাঁচবে এবং ডেটার আউটপুট কম হবে, ফলে কুয়েরি দ্রুত হবে। উদাহরণ:
aws dynamodb query \
--table-name Products \
--index-name CategoryIndex \
--projection-expression "ProductID, Name, Price" \
--key-condition-expression "Category = :category" \
--expression-attribute-values '{":category":{"S":"Electronics"}}'
Key condition expression
ব্যবহার করার পাশাপাশি, Filter expression
ব্যবহার করে ডেটা পরিশোধন করতে পারেন, তবে মনে রাখবেন যে এটি কুয়েরি অপটিমাইজেশন এর জন্য কম কার্যকরী হতে পারে কারণ পুরো ডেটা স্ক্যান করতে হবে।Indexes ব্যবহার করে DynamoDB তে কুয়েরি অপটিমাইজেশন আপনার অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে পারে। আপনি GSI বা LSI ব্যবহার করে ডেটার দ্রুত অনুসন্ধান করতে পারেন এবং আপনার কুয়েরির জন্য সবচেয়ে কার্যকরী ইনডেক্স নির্বাচন করতে পারবেন। সঠিকভাবে ইনডেক্স কনফিগার করলে, আপনার অ্যাপ্লিকেশন আরও দ্রুত এবং স্কেলেবল হবে।
common.read_more